Any-angle path planning algorithms search for paths on a cell decomposition of a continuous configuration space (such as a two-dimensional terrain).
Consider, for example, a uniform grid with blocked and unblocked cells. Searching the corresponding visibility graph finds a shortest path from a given start vertex to a given goal vertex but is typically very slow since the number of edges can grow quadratically in the number of vertices. Searching the corresponding grid graph typically finds suboptimal paths (since, for example, the heading changes of the resulting path are constrained to multiples of 45 degrees on an eight-neighbor grid graph) but is fast since the number of edges grows no faster than linearly in the number of vertices. Optimizing the path after the search typically shortens the path but does not change the topology of the path. It does not find a shortest path, for example, if the path found by the search algorithm passes a blocked cell on the left but the shortest path passes the same blocked cell on the right. Thus, there is an advantage to interleaving the search and the optimization. Any-angle path planning algorithms propagate information along grid edges (to search fast) without constraining their paths to grid edges (to find short paths). Thus, the heading changes of their paths are not constrained to specific angles, which explains their name.
So far, three main any-angle path planning algorithms have been developed, all are based on the heuristic search algorithm A* [1]. Field D*[2] uses interpolation during each vertex expansion. Theta*[3] checks for shortcuts during each vertex expansion. Finally, Block A* [4] uses a look-up table to quickly find piece-wise any-angle paths. While Theta* find paths that are no longer than A* paths, the found path may not be the ground truth optimal path. Unlike Theta* and Field D*, Block A* is guaranteed to find the ground-truth optimal path given that Block A* uses a sufficiently large look-up table.